FXMLLoader এর মাধ্যমে FXML লোড করা

Java Technologies - জাভাএফএক্স (JavaFx) - FXML এর সাথে কাজ
189

JavaFX তে UI (User Interface) তৈরি করার জন্য FXML একটি XML ভিত্তিক ফাইল ফরম্যাট, যা আপনাকে ইউজার ইন্টারফেস আলাদা করে ডিজাইন করতে দেয়। FXML দিয়ে UI ডিজাইন করা এবং FXMLLoader ব্যবহার করে তা JavaFX অ্যাপ্লিকেশন থেকে লোড করা হয়। এটি কোড এবং UI ডিজাইন আলাদা রাখার জন্য উপকারী, ফলে অ্যাপ্লিকেশনটির রক্ষণাবেক্ষণ সহজ হয়।

FXML এর সুবিধাসমূহ:

  1. UI ডিজাইন আলাদা করা: FXML দিয়ে UI ডিজাইন এবং Java কোড আলাদা করা যায়, যা কোডের পরিষ্কারতা বাড়ায়।
  2. ডিজাইনার টুল ব্যবহার: আপনি JavaFX Scene Builder ব্যবহার করে FXML ফাইলটি গ্রাফিক্যালভাবে ডিজাইন করতে পারেন এবং পরবর্তীতে সেই FXML ফাইলকে Java অ্যাপ্লিকেশনে লোড করতে পারেন।
  3. কোডের পুনঃব্যবহারযোগ্যতা: একই UI কম্পোনেন্টগুলো বিভিন্ন জায়গায় ব্যবহার করা সম্ভব।

FXML লোড করার জন্য FXMLLoader ব্যবহার:

FXMLLoader ক্লাসটি FXML ফাইলটি লোড করতে ব্যবহৃত হয় এবং এটি JavaFX অ্যাপ্লিকেশন এ UI উপাদানগুলিকে যুক্ত করে। FXMLLoader দ্বারা FXML ফাইল লোড করার জন্য কিছু পদক্ষেপ রয়েছে, যেগুলো নিচে ব্যাখ্যা করা হলো।


ধাপ ১: FXML ফাইল তৈরি করা

প্রথমে, একটি FXML ফাইল তৈরি করতে হবে, যেখানে UI ডিজাইন থাকবে। আপনি Scene Builder ব্যবহার করে FXML ফাইলটি ডিজাইন করতে পারেন, অথবা হাত দিয়েও এটি লিখতে পারেন।

উদাহরণ: sample.fxml (FXML ফাইল)

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.Scene?>

<StackPane xmlns:fx="http://javafx.com/fxml" fx:controller="sample.Controller">
    <Button text="Click Me" onAction="#handleButtonClick"/>
</StackPane>

এখানে:

  • StackPane: একটি লেআউট কন্টেইনার যা UI উপাদানগুলি স্তূপ আকারে সাজায়।
  • Button: একটি বাটন উপাদান যা Click Me টেক্সট সহ দেখাবে এবং বাটনে ক্লিক করলে একটি মেথড কল হবে।
  • fx:controller: এই অ্যাট্রিবিউটটি নির্দেশ করে যে এই FXML ফাইলটি কোন কন্ট্রোলারের সাথে যুক্ত থাকবে।

ধাপ ২: Controller ক্লাস তৈরি করা

FXML ফাইলের সাথে একটি কন্ট্রোলার ক্লাস যুক্ত করতে হয়। এটি Java ক্লাস যা UI উপাদানগুলির সাথে ইন্টারঅ্যাকশন হ্যান্ডেল করে।

উদাহরণ: Controller.java (Controller ক্লাস)

package sample;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;

public class Controller {

    // এই মেথডটি FXML ফাইলের Button এর সাথে যুক্ত
    @FXML
    private void handleButtonClick(ActionEvent event) {
        // বাটনে ক্লিক করলে একটি Alert দেখাবে
        Alert alert = new Alert(AlertType.INFORMATION);
        alert.setTitle("Information");
        alert.setHeaderText(null);
        alert.setContentText("Button clicked!");
        alert.showAndWait();
    }
}

এখানে:

  • handleButtonClick(): এই মেথডটি বাটনে ক্লিক হলে কল হয় (এই মেথডটি FXML ফাইলের onAction="#handleButtonClick" এর মাধ্যমে যুক্ত করা হয়েছে)।
  • Alert: বাটন ক্লিক করার পরে একটি ইনফরমেশন অ্যালার্ট শো হবে।

ধাপ ৩: FXMLLoader দিয়ে FXML লোড করা

এখন, আমাদের Java কোডে FXMLLoader ব্যবহার করে FXML ফাইলটি লোড করতে হবে। FXML ফাইল লোড করার জন্য FXMLLoader ক্লাসের load() মেথড ব্যবহার করা হয়।

উদাহরণ: Main.java (Java অ্যাপ্লিকেশন)

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

import java.io.IOException;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        try {
            // FXML ফাইল লোড করা
            FXMLLoader loader = new FXMLLoader(getClass().getResource("sample.fxml"));
            StackPane root = loader.load();

            // Scene তৈরি করা
            Scene scene = new Scene(root, 300, 250);

            // স্টেজ সেট করা
            primaryStage.setTitle("JavaFX FXML Example");
            primaryStage.setScene(scene);
            primaryStage.show();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

এখানে:

  • FXMLLoader ব্যবহার করে sample.fxml ফাইলটি লোড করা হয়েছে।
  • loader.load() মেথডে FXML ফাইল লোড হয়ে StackPane রুট এলিমেন্টে যুক্ত হয়।
  • Scene তৈরি করা হয় এবং Stage এ সেট করা হয়।

ধাপ ৪: প্রকল্পের কাঠামো

প্রকল্পের কাঠামো নিম্নরূপ হতে পারে:

JavaFXFXMLExample/
│
├── src/
│   └── sample/
│       ├── Controller.java
│       ├── Main.java
│       └── sample.fxml
└── lib/
    └── javafx-sdk-xx/lib/

ধাপ ৫: প্রকল্প রান করা

  1. JavaFX SDK ডাউনলোড করুন এবং সঠিকভাবে সেটআপ করুন।
  2. FXMLLoader দ্বারা FXML ফাইলটি লোড করতে Java কোড লিখুন।
  3. Main.java ক্লাস রান করুন।

FXML এবং FXMLLoader ব্যবহার করে JavaFX অ্যাপ্লিকেশন তৈরি করা UI এবং লজিকের মধ্যে আলাদা রেখেই উন্নত, পরিষ্কার এবং রক্ষণাবেক্ষণযোগ্য কোড লিখতে সাহায্য করে। FXML একটি সহজ XML ফরম্যাটে UI উপাদানগুলো ডিজাইন করার সুযোগ দেয়, এবং FXMLLoader দ্বারা তা JavaFX অ্যাপ্লিকেশনে লোড করা হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...